package com.ruoyi.business.domain;

import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 *  租户级复合组件对象
 *
 * @author ruoyi
 * @date 2025-11-18
 */
public class TenantComponent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 企业编码
     */
    @Excel(name = "企业编码")
    private  String  enterpriseCode;
    /**
     * 组件id
     */
    @Excel(name = "组件id")
    private  Long  componentId;
    /**
     * 组编码
     */
    @Excel(name = "组编码")
    private  String  groupCode;
    /**
     * 系统根据组件名称，翻译为英文，可以手工微调
     */
    @Excel(name = "系统根据组件名称，翻译为英文，可以手工微调")
    private  String  componentKey;
    /**
     * 组件名
     */
    @Excel(name = "组件名")
    private  String  componentName;
    /**
     * 组件图标url
     */
    @Excel(name = "组件图标url")
    private  String  componentIconUrl;
    /**
     * 状态：01--启用，02--禁用
     */
    @Excel(name = "状态：01--启用，02--禁用")
    private  String  status;
    /**
     * 排序号
     */
    @Excel(name = "排序号")
    private  Integer  sortNumber;
    /**
     * 功能描述
     */
    @Excel(name = "功能描述")
    private  String  functionDesc;
    /**
     * 组件设计脚本
     */
    @Excel(name = "组件设计脚本")
    private  String  designScript;
    /**
     * 版本号
     */
    @Excel(name = "版本号")
    private  Integer  version;
    /**
     * 是否当前版本
     */
    @Excel(name = "是否当前版本")
    private  String  isCurrent;
    /**
     * 节点类型：component--组件,用于前端区分组件及非组件行为
     */
    private String objectType;
    /**
     * 是否租户函数，用于前端区分 Y---是  N---否
     */
    private String isTenant;

    public String getObjectType() {
        return objectType;
    }

    public void setObjectType(String objectType) {
        this.objectType = objectType;
    }

    public String getIsTenant() {
        return isTenant;
    }

    public void setIsTenant(String isTenant) {
        this.isTenant = isTenant;
    }
    public List<String> getGroupCodes() {
        return groupCodes;
    }

    public void setGroupCodes(List<String> groupCodes) {
        this.groupCodes = groupCodes;
    }

    private List<String> groupCodes;


    /**
     * 获取企业编码
     * @return 企业编码
     */
    public  String  getEnterpriseCode(){
        return enterpriseCode;
    }
    /**
     * 设置企业编码
     * @param enterpriseCode 企业编码
     */
    public  void  setEnterpriseCode(String enterpriseCode){
        this.enterpriseCode = enterpriseCode;
    }
    /**
     * 获取组件id
     * @return 组件id
     */
    public  Long  getComponentId(){
        return componentId;
    }
    /**
     * 设置组件id
     * @param componentId 组件id
     */
    public  void  setComponentId(Long componentId){
        this.componentId = componentId;
    }
    /**
     * 获取组编码
     * @return 组编码
     */
    public  String  getGroupCode(){
        return groupCode;
    }
    /**
     * 设置组编码
     * @param groupCode 组编码
     */
    public  void  setGroupCode(String groupCode){
        this.groupCode = groupCode;
    }
    /**
     * 获取组件key
     * @return 组件key
     */
    public  String  getComponentKey(){
        return componentKey;
    }
    /**
     * 设置组件key
     * @param componentKey 组件key
     */
    public  void  setComponentKey(String componentKey){
        this.componentKey = componentKey;
    }
    /**
     * 获取组件名
     * @return 组件名
     */
    public  String  getComponentName(){
        return componentName;
    }
    /**
     * 设置组件名
     * @param componentName 组件名
     */
    public  void  setComponentName(String componentName){
        this.componentName = componentName;
    }
    /**
     * 获取组件图标url
     * @return 组件图标url
     */
    public  String  getComponentIconUrl(){
        return componentIconUrl;
    }
    /**
     * 设置组件图标url
     * @param componentIconUrl 组件图标url
     */
    public  void  setComponentIconUrl(String componentIconUrl){
        this.componentIconUrl = componentIconUrl;
    }
    /**
     * 获取状态
     * @return 状态
     */
    public  String  getStatus(){
        return status;
    }
    /**
     * 设置状态
     * @param status 状态
     */
    public  void  setStatus(String status){
        this.status = status;
    }
    /**
     * 获取排序号
     * @return 排序号
     */
    public  Integer  getSortNumber(){
        return sortNumber;
    }
    /**
     * 设置排序号
     * @param sortNumber 排序号
     */
    public  void  setSortNumber(Integer sortNumber){
        this.sortNumber = sortNumber;
    }
    /**
     * 获取功能描述
     * @return 功能描述
     */
    public  String  getFunctionDesc(){
        return functionDesc;
    }
    /**
     * 设置功能描述
     * @param functionDesc 功能描述
     */
    public  void  setFunctionDesc(String functionDesc){
        this.functionDesc = functionDesc;
    }
    /**
     * 获取组件设计脚本
     * @return 组件设计脚本
     */
    public  String  getDesignScript(){
        return designScript;
    }
    /**
     * 设置组件设计脚本
     * @param designScript 组件设计脚本
     */
    public  void  setDesignScript(String designScript){
        this.designScript = designScript;
    }
    /**
     * 获取版本号
     * @return 版本号
     */
    public  Integer  getVersion(){
        return version;
    }
    /**
     * 设置版本号
     * @param version 版本号
     */
    public  void  setVersion(Integer version){
        this.version = version;
    }
    /**
     * 获取是否当前版本
     * @return 是否当前版本
     */
    public  String  getIsCurrent(){
        return isCurrent;
    }
    /**
     * 设置是否当前版本
     * @param isCurrent 是否当前版本
     */
    public  void  setIsCurrent(String isCurrent){
        this.isCurrent = isCurrent;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("enterpriseCode", getEnterpriseCode())
            .append("componentId", getComponentId())
            .append("groupCode", getGroupCode())
            .append("componentKey", getComponentKey())
            .append("componentName", getComponentName())
            .append("componentIconUrl", getComponentIconUrl())
            .append("remark", getRemark())
            .append("status", getStatus())
            .append("sortNumber", getSortNumber())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("functionDesc", getFunctionDesc())
            .append("designScript", getDesignScript())
            .append("version", getVersion())
            .append("isCurrent", getIsCurrent())
            .toString();
    }
}
